\section{M\'odulo T\'itulo}
\setlength{\parindent}{0pt}
\begin{Interfaz}

\textbf{Usa}: Dinero, Nat, Nombre\\
\textbf{Se explica con}: \tadNombre{T\'itulo}\\
\textbf{G\'eneros}: \TipoVariable{t\'itulo}\\
\textbf{Operaciones}:

\InterfazFuncion{crearT\'itulo}{\In{n}{nombre}, \In{d}{dinero}, \In{n}{nat}}{t\'itulo}%
[True]
{$res \igobs$ crearT\'itulo(n, d, n)}
[O($1$)]
[Crea el t\'itulo con el nombre $n$, $d$ precio y $c$ cantida m\'axima de acciones.]

\InterfazFuncion{recotizar}{\In{d}{dinero}, \Inout{t}{t\'itulo}}{}%
[$t \igobs t_{0}$]
{$t \igobs recotizar(d, t_{0})$}%
[O($1$)]
[Recotiza el titulo.]

\InterfazFuncion{nombre}{\In{t}{t\'itulo}}{nombre}%
[$t \igobs t_{0}$]
{$res \igobs nombre(t_{0})$}%
[O($1$)]
[Devuelve el nombre del t\'itulo.]

\InterfazFuncion{\#M\'axAcciones}{\In{t}{t\'itulo}}{nat}%
[$t \igobs t_{0}$]
{$res \igobs \sharp máxAcciones(t_{0})$}%
[O($1$)]
[Devuelve la m\'axima cantidad de acciones.]

\InterfazFuncion{enAlza}{\In{t}{t\'itulo}}{bool}%
[$t \igobs t_{0}$]
{$res \igobs enAlza(t_{0})$}%
[O($1$)]
[Dic\'e si el t\'itulo est\'a en alza.]

\end{Interfaz}

\begin{Representacion}
  
\Titulo{Representaci\'on de t\'itulo}

\begin{Estructura}{t\'itulo}[str]
\begin{Tupla}[str]
\tupItem{nombre}{nombre} 
\tupItem{cotizacion}{nat} 
\tupItem{maxAcciones}{nat} 
\tupItem{enAlza}{bool} 
\end{Tupla}
\end{Estructura}
\Rep[str][e]{True}
 
\AbsFc[str]{t\'itulo}[e]{e: t\'itulo $| (nombre(e) = nombre(e.nombre) \wedge$ 
$ \#maxAcciones(e) = e.maxAcciones \wedge $ \\
cotizaci\'on(e) $= e.cotizacion \wedge enAlza(e) = e.enAlza)$}

\end{Representacion}
\begin{Algoritmos}
\begin{lstlisting}
iCrearTitulo(in n:nombre, in d: dinero, in c:nat) -> res:str{	//O(1)
  res.nombre <- n				//O(1)
  res.cotizacion <- d				//O(1)
  res.maxAcciones <- n				//O(1)
  res.enAlza <- True				//O(1)
}
\end{lstlisting}
\begin{Descripcionbis}
COMPLEJIDAD TEMPORAL: O($1$)\\
\end{Descripcionbis}

\begin{lstlisting}
iRecotizar(in d:dinero, in/out e:str){		//O(1)
	e.enAlza <- (e.dinero < d)		//O(1)
	e.dinero <- d				//O(1)
}

\end{lstlisting}
\begin{Descripcionbis}
COMPLEJIDAD TEMPORAL: O($1$)\\
\end{Descripcionbis}

\begin{lstlisting}
iNombre(in e:estr) -> res:nombre{		//O(1)
  res <- e.nombre				//O(1)
}
\end{lstlisting}
\begin{Descripcionbis}
COMPLEJIDAD TEMPORAL: O($1$)\\
\end{Descripcionbis}

\begin{lstlisting}
i#MaxAcciones(in e:str) -> res:nat{		//O(1)
  res <- e.maxAcciones				//O(1)
}
\end{lstlisting}
\begin{Descripcionbis}
COMPLEJIDAD TEMPORAL: O($1$)\\
\end{Descripcionbis}

\begin{lstlisting}
iCotizacion(in e:str) -> res:dinero{		//O(1)
  res <- e.cotizacion				//O(1)
}
\end{lstlisting}
\begin{Descripcionbis}
COMPLEJIDAD TEMPORAL: O($1$)\\
\end{Descripcionbis}

\begin{lstlisting}
iEnAlza(in e:str) -> res:bol{			//O(1)
  res <- e.enAlza				//O(1)
}
\end{lstlisting}
\begin{Descripcionbis}
COMPLEJIDAD TEMPORAL: O($1$)\\
\end{Descripcionbis}

\end{Algoritmos}
